﻿using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IO
{
    [TestFixture]
    public class TestDirectory
    {
        // Directory是托管资源，不需要人工释放

        [Test]
        public void TestCreateDir()
        {
            // 有则返回信息，无则创建后返回信息对象
            DirectoryInfo info = Directory.CreateDirectory("D://logs1//logs2//logs3"); // 创建目录，并返回目录信息对象
        }


        // 删除“空目录”，删除"非空目录，及其所有子项"
        [Test]
        public void TestDelete()
        {
            //  只能删除指定的"空目录"，目录不为空时报错：   System.IO.IOException : 目录不是空的。 : 'D:\logs1'
            DirectoryInfo info = new DirectoryInfo("D://logs1");
            info.Delete(); // 只能删除指定路径的"空目录"

            // 如果要删除"非空目录" (将目录联通其子项目一同删除)
            info.Delete(true); // recursive：是否递归删除
        }

        // 获取实行路径下的所有目录
        [Test]
        public void TestGetAllDir()  
        {
            DirectoryInfo info = new DirectoryInfo("E://Tools");
            // IEnumerable<DirectoryInfo> dirs = info.EnumerateDirectories("*",SearchOption.AllDirectories);  // 只能获取直接目录
            IEnumerable<DirectoryInfo> dirs = info.EnumerateDirectories("*",);
            foreach (var item in dirs)
            {
                Console.WriteLine(item.FullName);
            }
        }
    }
}
